//
//  KKBaseAFNetWorking.h
//  AFnetWorking测试
//
//  Created by long on 14-11-18.
//  Copyright (c) 2014年 谭启龙. All rights reserved.
//  网络加载的根类

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import "XLBaseNetMode.h"

#define KKCancelLoad @"KKCancelLoad"//取消网络加载的通知

typedef void(^sucBlock)(NSObject * resulte); //请求成功的参数
typedef void(^errorBlock)(id resulte);//请求失败的参数
typedef void(^cancelBlock)();//取消请求的参数

@interface XLNetworking : NSObject
@property (nonatomic,strong) id result; //访问网络后获取的结果 可通过重写processResult修改成新的结果 如果是data则是json解析出的结果
@property (nonatomic,strong) id originResult; //网络获取后的原始结果 如果是data则是json解析后的结果
@property (nonatomic,copy) sucBlock sucBlock;
@property (nonatomic,copy) errorBlock errorBlock;
@property (nonatomic,copy) cancelBlock cancelBlock;
@property (nonatomic,copy) NSString * requestUrl;
@property (nonatomic,assign) BOOL islogMessage; //是否打印参数信息

//请求成功和失败走的方法
-(void)sucBlockDo:(id)resulte;
-(void)errorBlockDo:(id)resulte;

/**
 *  显示换冲图
 *
 *  @param superView 要加载到哪个视图上
 */
-(void)loadMaskAcivityView:(UIView *)superView;

/**
 *  数据加工处理,子类重写此方法加工mode
 *
 *  @param resultDic 请求成功后的数据
 *
 *  @return 处理后的数据
 */
-(XLBaseNetMode *)processResult:(id)result;

/**
 *  获取接口的地址,子类重写此方法设置网络地址
 *
 *  @return 要获取数据的地址，可以带问号也可以不带问号加参数
 */
- (NSString*)getRequestUrl;

//加载完成,取消显示缓冲图
-(void)loadFinished;

@end
